// #include "c1.h"
// typedef int ElemType;
// #include "c2-1.h" //线性表的顺序存储结构
// #include "bo2-1.h"//线性表的顺序存储结构的基本操作
// #include "func2-2.h"

// Status sq(ElemType c1, ElemType c2)
// {//数据元素判定函数（平方关系） ，LocateElem（）要调用的函数
//     if(c1 == c2*c2)
//         return TRUE;
//     else 
//         return FALSE;
// }

// void db1(ElemType &c)
// {//ListTraverse（）调用的另一函数（元素值加倍）
//     c = c * 2;
// }

// TEST(test_main2_1, demo) //gtest
// {
//     LOG(INFO) << "\n开始测试线性表的顺序表示与实现！";
//     SqList L;
//     ElemType e , e0;
//     Status i;
//     int j,k;
//     InitList(L);//初始化线性表
//     printf("初始化L后，L.length=%d,L.listsize=%d, L.elem=%p\n",L.length, L.listsize,L.elem);
//     ASSERT_EQ(0,L.length);
//     ASSERT_EQ(10,L.listsize);
//     for(j = 1; j <= 5; j++)
//         i = ListInsert(L, 1, j);//在L的表头插入j
//     printf("在L的表头依次插入1~5后，*L.elem=");
//     for(j = 1; j <= 5; j++)
//         printf("%d ", *(L.elem + j - 1));
//     printf("\n调用ListTraverse函数以此输出表L的元素！");
//     ListTraverse(L, print1);//依次对表L中的元素调用print1函数
//     i = ListEmpty(L); //检测表是否为空
//     ASSERT_EQ(0,i);
//     printf("L.length=%d,L.listsize=%d\n",L.length, L.listsize);
//     ClearList(L);
//     i = ListEmpty(L); //检测表是否为空
//     ASSERT_EQ(1,i);
//     printf("清空后，L.length=%d,L.listsize=%d\n",L.length, L.listsize);
//     printf("清空后，实际上.elem的那块内存单元上的数据元素是否还存在，*L.elem=");
//     for(j = 1; j <= 5; j++)
//         printf("%d ", *(L.elem + j - 1));
//     printf("\n");
//     for(int j = 1; j<= 10; j++)
//         ListInsert(L, j , j);//在表尾插入j
//     printf("在L的表尾依次插入1-10后，L=");
//     ListTraverse(L, print1);
//     printf("L.length=%d,L.listsize=%d,L.elem:%p\n",L.length, L.listsize,L.elem);
//     ListInsert(L, 1, 0);//要扩容
//     printf("在L的表头插入0后， L.length:%d, L.listsize:%d,L.elem:%p\n",L.length, L.listsize,L.elem);
//     GetElem(L, 5 ,e);//第5个元素给e
//     printf("第5个元素的值为%d\n", e);
//     ASSERT_EQ(4,e);
//     //查找L中是否有10这个数据元素，有的话输出位序
//     j = 10;
//     k = LocateElem(L, j ,equal);
//     if(k)
//         printf("第%d个元素的值为%d\n", k , j);
//     else
//         printf("没有值为%d的元素\n",j);
//     k = ListLength(L);
//     printf("L表长为:%d\n",k);
//     i = NextElem(L , 8, e);
//     if(i)
//         printf("元素8的后继为%d\n", e);
//     else    
//         printf("元素8无后继\n");
//     i = PriorElem(L , 8, e);
//     if(i)
//         printf("元素8的前驱为%d\n", e);
//     else    
//         printf("元素8无前驱\n");
//     i = ListDelete(L, 10, e);//删除第10个元素
//     printf("删除第10个元素后， L.length:%d, L.listsize:%d,L.elem:%p\n",L.length, L.listsize,L.elem);
//     printf("L=");
//     ListTraverse(L, print1);
//     ListTraverse(L, db1);//依次对元素调用db1，元素值乘2
//     printf("L=");
//     ListTraverse(L, print1);
//     DestroyList(L);
//     printf("销毁L后， L.length:%d, L.listsize:%d,L.elem:%p\n",L.length, L.listsize,L.elem);
// }